package Kernel;

//import GUI.*;

import java.io.IOException;
import java.util.GregorianCalendar;

import GUI.Accueil;

public class Main2 {

	/**
	 * @param args
	 * @throws IOException
	 * @throws ClassNotFoundException
	 */
	public static void main(String[] args) throws IOException,
			ClassNotFoundException {

		// Villes
		Ville nice = new Ville("Nice", 500000, true, true, true, true);
		Ville marseille = new Ville("Marseille", 1000000, true, true, true,
				true);
		Ville paris = new Ville("Paris", 6000000, true, true, true, false);
		Ville ny = new Ville("NY", 1000000, true, true, true, true);
		Ville poitiers = new Ville("Poitiers", 300000, true, true, true, true);
		// Trajets
		Trajet niceMarseilleTrain = new Trajet("Nice-Marseille | Train",
				new Train(), nice, new GregorianCalendar(2012,3,28), marseille, new GregorianCalendar(2012,3,30),100,"modifiable");
		Trajet niceMarseilleBus = new Trajet("Nice-Marseille | Bus", new Bus(),
				nice, new GregorianCalendar(2012,3,27), marseille, new GregorianCalendar(2012,4,1),100,"modifiable");
		Trajet niceParisAvion = new Trajet("Nice-Paris | Avion", new Avion(),
				nice, new GregorianCalendar(2012,3,28), paris, new GregorianCalendar(2012,3,30),100,"modifiable");
		Trajet marseilleNiceTrain = new Trajet("Marseille-Nice | Train",
				new Train(), marseille, new GregorianCalendar(2012,3,28), nice, new GregorianCalendar(2012,3,30),100,"modifiable");
		Trajet marseilleNiceBus = new Trajet("Marseille-Nice | Bus", new Bus(),
				marseille, new GregorianCalendar(2012,3,28), nice, new GregorianCalendar(2012,3,30),100,"modifiable");
		Trajet marseillePoitiers = new Trajet("Marseille-Poitiers | Train",
				new Train(), marseille, new GregorianCalendar(2012,3,30), poitiers, new GregorianCalendar(2012,3,30),100,"modifiable");
		Trajet parisNiceAvion = new Trajet("Paris-Nice | Avion", new Avion(),
				paris, new GregorianCalendar(2012,4,1), nice, new GregorianCalendar(2012,4,2),100,"modifiable");
		Trajet parisNyAvion = new Trajet("Paris-NY | Avion", new Avion(),
				paris, new GregorianCalendar(2012,5,26), ny, new GregorianCalendar(2012,6,30),900,"modifiable");
		Trajet poitiersNyAvion = new Trajet("Poitiers-NY | Avion", new Avion(),
				poitiers, new GregorianCalendar(2012,4,1), ny, new GregorianCalendar(2012,4,2),100,"modifiable");
		Trajet nyParisAvion = new Trajet("NY-Paris | Avion", new Avion(),
				ny, new GregorianCalendar(2012,3,28), paris, new GregorianCalendar(2012,3,30),100,"modifiable");
		
		// Serveur
		Serveur serv = new Serveur();
		serv.ajouterVille(nice);
		serv.ajouterVille(marseille);
		serv.ajouterVille(paris);
		serv.ajouterVille(ny);
		serv.ajouterVille(poitiers);
		serv.ajouterTrajet(niceMarseilleTrain);
		serv.ajouterTrajet(niceMarseilleBus);
		serv.ajouterTrajet(niceParisAvion);
		serv.ajouterTrajet(marseilleNiceTrain);
		serv.ajouterTrajet(marseilleNiceBus);
		serv.ajouterTrajet(parisNiceAvion);
		serv.ajouterTrajet(parisNyAvion);
		serv.ajouterTrajet(marseillePoitiers);
		serv.ajouterTrajet(poitiersNyAvion);
		serv.ajouterTrajet(nyParisAvion);
		
		serv.initReseau();
		//Reseau r = new Reseau(serv.getVilles(), serv.getTrajets());
		//r.afficherItineraires(nice, paris,true);
//		Object[] o = r.itineraireMoinsCher(paris, ny, true, 0.4);
//		System.out.println("Prix : " + (Double) o[1]);
//		System.out.println(r.itinerairePlusCourt(paris, ny));
		
		// Lancement de l'interface graphique
		 Accueil ac = new Accueil(serv);
		 ac.setVisible(true);
		
	}

}